home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / BORLAND TURBO / CLASSINC.PAK / TIMER.H < prev    next >
C/C++ Source or Header  |  1997-05-05  |  1KB  |  90 lines

  1. //----------------------------------------------------------------------------
  2. // Borland Class Library
  3. // Copyright (c) 1991, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   5.6  $
  6. //
  7. //----------------------------------------------------------------------------
  8. #if !defined(CLASSLIB_TIMER_H)
  9. #define CLASSLIB_TIMER_H
  10.  
  11. #include <classlib/defs.h>
  12.  
  13. #if !defined(BI_PLAT_DOS) && !defined(BUILDBIDSTIMER)
  14. # error class TTimer only available under DOS
  15. #endif
  16.  
  17. #pragma option -Vo-
  18. #if defined( BI_CLASSLIB_NO_po )
  19. # pragma option -po-
  20. #endif
  21.  
  22. #if defined(BI_NAMESPACE)
  23. namespace ClassLib {
  24. #endif
  25.  
  26. class TTimer
  27. {
  28.  
  29. public:
  30.  
  31.     TTimer();
  32.  
  33.     void Start();
  34.     void Stop();
  35.     void Reset();
  36.  
  37.     int Status();
  38.     double Time();
  39.  
  40.     static double Resolution();
  41.  
  42. private:
  43.  
  44.     static unsigned Adjust;
  45.     static unsigned Calibrate();
  46.     int Running;
  47.  
  48.     struct TIME
  49.         {
  50.         unsigned long DosCount;
  51.         unsigned TimerCount;
  52.         };
  53.  
  54.     TIME StartTime;
  55.  
  56.     double Time_;
  57.  
  58. };
  59.  
  60. #if defined( BI_OLDNAMES )
  61. #define Timer TTimer
  62. #endif
  63.  
  64. inline int TTimer::Status()
  65. {
  66.     return Running;
  67. }
  68.  
  69. inline double TTimer::Time()
  70. {
  71.     return Time_/1.E6;
  72. }
  73.  
  74. inline double TTimer::Resolution()
  75. {
  76.     return 839/1.E9;
  77. }
  78.  
  79. #if defined(BI_NAMESPACE)
  80. }   // namespace ClassLib
  81. #endif
  82.  
  83. #if defined( BI_CLASSLIB_NO_po )
  84. #pragma option -po.
  85. #endif
  86.  
  87. #pragma option -Vo.
  88.  
  89. #endif  // CLASSLIB_TIMER_H
  90.